ELK如何收集windows server 2019的日志
在 Windows Server 2019 上收集日志并发送到 ELK(Elasticsearch + Logstash + Kibana)最推荐的方法是使用 Winlogbeat,这是 Elastic 官方专为 Windows 事件日志设计的轻量级代理。下面是完整配置流程 ⚙️👇
📦 一、下载并安装 Winlogbeat
进入官方页面:Winlogbeat 下载地址
- 选择对应架构(64-bit),下载 ZIP 文件
- 解压到目录,例如:
C:\Program Files\Winlogbeat
🛠️ 二、配置 Winlogbeat
编辑 winlogbeat.yml
文件,设置采集项与输出目标:
winlogbeat.event_logs:
- name: Application
- name: Security
- name: System
- name: ForwardedEvents
output.logstash:
hosts: ["10.1.100.16:5044"] # 👉 替换为你的 Logstash 地址
ssl.enabled: false
fields:
environment: prod
app: windows-server-2019
event.module: printserver-10.1.100.11
fields_under_root: true
processors:
- add_host_metadata: ~
💡 如果你想收集特定应用的日志(如 Jumpserver、IIS),可在
event_logs
中添加日志源或使用日志文件方式。
🔐 三、授予权限(安全日志需要 SYSTEM 权限)
打开 PowerShell(管理员身份)执行:
.\install-service-winlogbeat.ps1
这会安装并注册 Winlogbeat 为系统服务。
🚀 四、启动服务并测试日志发送
启动 Winlogbeat 服务:
Start-Service winlogbeat
查看是否日志成功发送至 Logstash(你可在 Kibana → Discover 页面验证)
备注:如果不想将winlogbeat安装为系统服务,可以参照截图,免安装运行,弊端就是服务器重启后都要手动运行一遍。